﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace System.Linq
{
    public static class LinqINClause
    {
        /// <summary>
        /// Permite construir una cláusula In sobre una propiedad
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source"></param>
        /// <param name="propiedad">Nombre de la propiedad</param>
        /// <param name="valores"></param>
        /// <returns></returns>
        public static IQueryable<T> InInt<T>(this IQueryable<T> source, string propiedad, int[] valores)
        {
            var predicado = "";
            for (int i = 0; i < valores.Length; i++)
            {
                if (i == 0)
                    predicado += propiedad + " = " + valores[i];
                else
                    predicado += " || " + propiedad + " = " + valores[i];
            }
            return (IQueryable<T>)source.Where(predicado, valores);
        }
    }
}
